1. Technical Field
This invention generally relates to computer systems and more specifically relates to a database apparatus and methods.
2. Background Art
Many modern computer systems are a complex combination of different hardware and software that are interconnected on a network. Networks allow computers to share information. Shared information may be stored in a central database. As the need for databases has grown, the complexity of databases has grown as well. In addition, as databases evolve over time, their structure and organization changes. The structure and organization of a database are referred to as the database “schema”. The job of a database administrator is to manage and maintain a database. In order to effectively manage a database, a database administrator must know and understand the database schema. However, many database administrators have been on the job for significantly less time than the database has been running. Oftentimes, there is little or no documentation that specifies the current schema of the database.
Database tools have been developed that help create database schemas and that help to understand the relationships between tables, indexes, and other database objects. These tools make the management of a database easier. For example, one tool known as Erwin marketed by Computer Associates is a data modeling tool that helps the average programmer and database administrator to not only make changes to a schema, but to also help in understanding the current schema design. Erwin is a trademark of Computer Associates. Referential constraints and triggers also help to further encapsulate the database design. However, even with all of the new tools and database features available in the prior art, understanding the design of a database and all of its relationships can still be a daunting task. In fact, even the best database architects/administrators miss relationships during their design, not necessarily because of oversight but because administrators are not necessarily familiar with the actual data in the columns. The problem that arises is one of usability. Without understanding all of the database relationships, one cannot fully use the database model to facilitate the retrieval of data. Furthermore, missing database relationships can lead to bad design when changes are made to the schema itself.
Many schemas are created without the help of modeling tools and are therefore more prone to errors. In addition, many schemas were created and are still used today that did not have these modeling tools available when they were first created. For the many reasons given above, most database schemas do not include all relationships in the database. Without a way to determine relationships in a database that are not included in the current schema, the database industry will continue to be plagued by incomplete relationship information when making changes to a database.